package com.cictec.middleware.tde;

import com.cictec.middleware.commons.utils.Result;

/**
 * 终点消息下发统一接口， <br>
 * 写这里的目的是避免maven在创建多模块的时候产生循环引用为题【如果切换称微服务spring-cloud次接口可省掉；如果使用dubbo的话可以参考此接口重新定义公用接口】
 * 
 * @author Administrator
 *
 */
public interface SendTerminalMessageService {


	/**
	 * 文字消息下发
	 * 
	 * @param devCode
	 * @param lineId
	 * @param content
	 * @return
	 */
	public Result sendTextMessage(String devCode, String lineId, String content);

	/**
	 * 文字语音消息下发
	 * 
	 * @param devCode
	 * @param lineId
	 * @param content
	 * @return
	 */
	public Result sendTextVoiceMessage(String devCode, String lineId, String content);

	/**
	 * 前后车距消息下发
	 * 
	 * @param devCode
	 * @param lineId
	 * @param content
	 * @return
	 */
	public Result sendBeforAfterDistanceMessage(String devCode, String lineId, String content);
	
	/**
	 * 发车时刻下发
	 * 
	 * @param devCode
	 * @param lineId
	 * @param content
	 * @return
	 */
	public Result sendDepartureTimeMessage(String devCode, String lineId, String content);

	/**
	 * 切换线路消息下发
	 * 
	 * @param devCode
	 *            设备编号
	 * @param newLineId
	 *            新设备线路id
	 * @param direction
	 *            方向【注：锐明设备该值可为null】
	 * @return
	 */
	public Result sendChangeLineMessage(String devCode, String newLineId, String direction);

	/**
	 * 切换运营状态消息下发
	 * 
	 * @param devCode
	 * @param typeValue
	 * @param operateStatus	运营状态  0：非营运;1：运营
	 * @param content
	 * @return
	 */
	public Result sendChangeOperateMessage(String devCode, String typeValue, int operateStatus, String content);

	/**
	 * 下发报站文件升级指令
	 * @param devCode
	 * @param data	object 根据情况取取（默认JSONObject）目前使用json传递参数
	 * @return
	 */
	public Result sendUploadReportStationFileMessage(String devCode, Object data);

}
